#ifndef EFFECTS_H 
#define EFFECTS_H 

#include <vector>

class Effects {
	public:
		Effects();
		~Effects();
		void blit(SDL_Surface* surface);
		void addTileTint(const int x, const int y,
		                 const SDL_Color* const colour,
		                 const unsigned char alpha);
		void removeTileTint(const int x, const int y);
		void clearTileTints(); // clears all tile tints

	private:
		std::vector<class TileTint*> tileTints_;
};

class TileTint {
	public:
		TileTint(const int x, const int y, const SDL_Color* colour, 
		         const unsigned char alpha);
		~TileTint();
		void blit();
		int getX() const;
		int getY() const;
	
	private:
		int x_, y_;
		SDL_Color colour_;
		unsigned char alpha_;
};
#endif // EFFECTS_H

